﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Open_MUD.Mudlib.lib
{
    class Posicionable:MUDObject
    {
		private Contenedor enviroment;
		public Contenedor Entorno
		{
			get{return enviroment;}
			set{
                if (Entorno != null)
                {
                    Entorno.Sacar(this);
                    event_salir(enviroment);

                    enviroment = value;
                    Entorno.Añadir(this);

                    event_entrar(enviroment);
                }
                else
                {
                    enviroment = value;
                    Entorno.Añadir(this);                 
                }
			}
		}
		protected virtual void event_entrar(Posicionable donde){}
        protected virtual void event_salir(Posicionable desdedonde) { }
        protected int peso=0;
		public int Peso{
			get{return peso;}
			set{peso = value;}
		}
		protected int volumen = 0;
		public int Volumen{
			get{return volumen;}
			set{volumen = value;}
		}
		
		public virtual string toXML(string inner)
		{
		   string xml =
		   "<posicionable>"+
		   "<peso>"+peso+"</peso>"+
		   "<volumen>"+volumen+"</volumen>"+
		   "<entorno>"+"</entorno>"+
		   inner+
		   "</posicionable>";
		   return base.toXML(xml);
		}
		public virtual string getPath()
        {
           return "/mudobject";
        }
        
        public virtual void fromXML()
        {
           
        }
		
    }
}
